/**
 *******************************************************************************
 * @file hal_event.h
 *
 * Copyright (c) 2010 Hewlett-Packard Development Company, L.P.
 * All rights reserved.
 *
 * @brief definition of HAL's events and associated types.
 *
 *
 *******************************************************************************
 */

#ifndef _HAL_EVENT_H_
#define _HAL_EVENT_H_

#ifdef __cplusplus
extern "C" {
#endif


/**
* @defgroup hal_event_public HAL's public event-related interface.
* @ingroup hal_public
* @brief HAL's public event-related inteface.
* @{
*/

/*
 * HAL device types
 */
typedef enum {
	HAL_EVENT_UNDEFINED,		/**< Undefined device type */
	HAL_EVENT_ACCELEROMETER,	/**< Accelerometer */
	HAL_EVENT_ALS,				/**< Ambient light sensor */
	HAL_EVENT_COMPASS,			/**< Compass */
	HAL_EVENT_GYRO,				/**< Gyro */
	HAL_EVENT_FUSION,			/**< Fusion */
	HAL_EVENT_KEYS,				/**< Keys */
	HAL_EVENT_BLUETOOTH_INPUT_DETECT, /**< Bluetooth Input Detect*/
	HAL_EVENT_TOUCHPANEL,		/**< Touchpanel */
	HAL_EVENT_PROXIMITY,		/**< Proximity */
	HAL_EVENT_CUSTOM,			/**< Custom */
} hal_event_type_t;

struct hal_event;

/*
 * HAL handle to the event. Event's are opaque for clients.
 */
typedef struct hal_event* hal_event_handle_t;

/** @} */
#ifdef __cplusplus
}
#endif

#endif /* _HAL_EVENT_H_ */
